/*
    Android Asynchronous Http Client
    Copyright (c) 2013 JIXIAOLONG <MicroJixl@gmail.com>

    Licensed under the Apache License, Version 2.0 (the "License");
    you may not use this file except in compliance with the License.
    You may obtain a copy of the License at

        http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.
 */

package com.jxl.netframe.apachebase;

import java.io.ByteArrayInputStream;
import java.io.InputStream;

/***
 * A PartSource that reads from a byte array.  This class should be used when
 * the data to post is already loaded into memory.
 * 
 * @author JiXL
 * @time 2013-5-27 下午5:37:37
 */
public class ByteArrayPartSource implements PartSource {

    /*** Name of the source file. */
    private String fileName;

    /*** Byte array of the source file. */
    private byte[] bytes;

    /***
     * Constructor for ByteArrayPartSource.
     * 
     * @param fileName the name of the file these bytes represent
     * @param bytes the content of this part
     */
    public ByteArrayPartSource(String fileName, byte[] bytes) {

        this.fileName = fileName;
        this.bytes = bytes;

    }

    /***
     * @see PartSource#getLength()
     */
    public long getLength() {
        return bytes.length;
    }

    /***
     * @see PartSource#getFileName()
     */
    public String getFileName() {
        return fileName;
    }

    /***
     * @see PartSource#createInputStream()
     */
    public InputStream createInputStream() {
        return new ByteArrayInputStream(bytes);
    }

}

